Computer systems of the type commonly known as personal computers have become very popular in recent years, and typically have several connectors or expansion slots into which a user can removably plug a memory unit in order to increase the amount of random access memory available to the central processing unit (CPU). As part of the process of adding additional memory, the added memory must be configured, which involves assigning the memory unit a range of absolute memory addresses to which it is to respond, and bringing to the attention of the central processing unit the fact that memory has been added and the number of storage locations which are present in the added memory.
One traditional approach is to manually set switches provided on the memory unit or to manually install jumpers on the unit in order to create a hardwired indication of the range of absolute addresses to which the memory unit is to respond. However, this approach is cumbersome, and presents a significant possibility of error in the event a particular switch element or jumper is not manually handled in an accurate manner.
A better approach is automatic configuration by the system itself when it is powered up. One example of this is disclosed in Kaufman U.S. Pat. No. Re. 31,318. This patent discloses an arrangement in which each removable memory unit has a calculating circuit. The CPU provides a base address to the calculating circuit in the first unit, and that unit calculates and provides to the calculating circuit of the second unit an appropriate base address for the second unit, which in turn provides a base address to the calculating circuit of the third unit, and so forth in a daisy-chain manner. While this approach is adequate for its intended purposes, it is not satisfactory in all respects. For example, the need to provide a calculating circuit on each memory unit significantly increases the cost of each memory unit.
It is an object of the present invention to provide an improved method and apparatus for effecting automatic memory configuration in a manner which is highly efficient and yet involves minimal hardware cost.